def day_of_year_question():
    def is_leap_year(year):
        """判断是否为闰年"""
        return (year % 4 == 0 and year % 100!= 0) or year % 400 == 0

    year = int(input("请输入年份："))
    month = int(input("请输入月份："))
    day = int(input("请输入日期："))
    days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    if is_leap_year(year):
        days_in_month[2] = 29
    total_days = 0
    for m in range(1, month):
        total_days += days_in_month[m]
    total_days += day
    print(f"{year}年{month}月{day}日是这一年的第{total_days}天。")


def prime_numbers_question():
    prime_numbers = []
    for num in range(2, 1001):
        is_prime = True
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                is_prime = False
                break
        if is_prime:
            prime_numbers.append(num)
    print(f"1000以内的素数共有{len(prime_numbers)}个，分别为：")
    print(prime_numbers)


def grade_question():
    score = float(input("请输入学习成绩："))
    grade = 'A' if score >= 90 else ('B' if score >= 60 else 'C')
    print(f"该成绩对应的等级为：{grade}")


def string_count_question():
    input_str = input("请输入一行字符串：")
    letters_count = 0
    spaces_count = 0
    digits_count = 0
    others_count = 0
    for char in input_str:
        if char.isalpha():
            letters_count += 1
        elif char.isspace():
            spaces_count += 1
        elif char.isdigit():
            digits_count += 1
        else:
            others_count += 1
    print(f"英文字母个数：{letters_count}")
    print(f"空格个数：{spaces_count}")
    print(f"数字个数：{digits_count}")
    print(f"其它字符个数：{others_count}")


def perfect_numbers_question():
    for num in range(1, 1001):
        factors_sum = 0
        for factor in range(1, num):
            if num % factor == 0:
                factors_sum += factor
        if factors_sum == num:
            print(num)


def factorial_sum_question():
    n = int(input("请输入数N："))
    sum_value = 0
    factorial = 1
    for i in range(1, n + 1):
        factorial *= i
        sum_value += factorial
    print(f"1+2!+3!+...+{n}! 的值为：{sum_value}")


def diamond_question():
    n = int(input("请输入奇数N："))
    for i in range(1, (n + 1) // 2 + 1):
        print(' ' * ((n + 1) // 2 - i) + '*' * (2 * i - 1))
    for i in range((n + 1) // 2 - 1, 0, -1):
        print(' ' * ((n + 1) // 2 - i) + '*' * (2 * i - 1))


def sort_numbers_question():
    numbers = []
    for _ in range(10):
        num = int(input("请输入一个数："))
        numbers.append(num)
    numbers.sort()
    print("排序后的结果为：", numbers)


def insert_number_question():
    sorted_array = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]  # 这里只是示例已有排序数组，你可替换或修改获取方式
    num_to_insert = int(input("请输入要插入的数："))
    inserted = False
    for i in range(len(sorted_array)):
        if num_to_insert < sorted_array[i]:
            sorted_array.insert(i, num_to_insert)
            inserted = True
            break
    if not inserted:
        sorted_array.append(num_to_insert)
    print("插入后的数组为：", sorted_array)


def circle_question():
    n = int(input("请输入人数n："))
    people = list(range(1, n + 1))
    index = 0
    while len(people) > 1:
        index = (index + 2) % len(people)
        people.pop(index)
    print(f"最后留下的是原来第{people[0]}号的那位。")


def get_question_text(question_num):
    question_texts = {
        1: "输入某年某月某日，判断这一天是这一年的第几天",
        2: "判断1000中有多少个素数，并输出所有素数",
        3: "利用条件运算符的嵌套来完成此题：学习成绩 >=90 分的同学用 A 表示，60-89 分之间的用 B 表示，60 分以下的用 C 表示。（要求有键盘输入）",
        4: "输入一行字符串，分别统计出其中英文字母、空格、数字和其它字符的个数",
        5: "一个数如果恰好等于它的因子之和，这个数就称为 “完数”。例如 6=1＋2＋3. 编程，找出 1000 以内的所有完数",
        6: "输入任意数 N，求 1+2!+3!+...+N! 的值（注意实数范围）",
        7: "输入任意奇数 N，按如下要求打印出图案（菱形）",
        8: "对 10 个数进行排序",
        9: "有一个已经排好序的数组（元素数量大于 10）。从键盘任意输入一个数，要求按原来的规律将它插入数组中",
        10: "有 n 个人围成一圈，顺序排号。从第一个人开始报数（从 1 到 3 报数），凡报到 3 的人退出圈子，问最后留下的是原来第几号的那位"
    }
    return question_texts.get(question_num, "")